package com.fulihui.usercore.api;

import com.fulihui.usercore.condition.TagCondition;
import com.fulihui.usercore.dto.TagDTO;
import com.fulihui.usercore.request.tag.MarkUserRequest;
import com.fulihui.usercore.request.tag.TagSaveRequest;
import org.near.servicesupport.request.TRequest;
import org.near.servicesupport.result.BaseResult;
import org.near.servicesupport.result.TMultiResult;
import org.near.servicesupport.result.TSingleResult;

/**
 * 已废弃，无需改造
 * 用户标签服务
 * Created by Willard.Hu on 2016/5/17.
 */
@Deprecated // 目前没有用户标签业务需求了，等有了再放开注释
public interface UserTagService {

    /**
     * 保存标签
     *
     * @param request {@link TagSaveRequest}
     * @return 返回接口调用结果 {@link BaseResult}
     */
    BaseResult save(TagSaveRequest request);

    /**
     * 标记到用户
     *
     * @param request {@link MarkUserRequest}
     * @return 返回接口调用结果 {@link BaseResult}
     */
    BaseResult markUser(MarkUserRequest request);

    /**
     * 删除标签
     *
     * @param request 标签主键
     * @return 返回接口调用结果 {@link BaseResult}
     */
    BaseResult delete(TRequest<String> request);

    /**
     * 按主键查询标签
     *
     * @param request 标签主键
     * @return 返回单个标签信息 {@link TagDTO}
     */
    TSingleResult<TagDTO> queryByPK(TRequest<String> request);

    /**
     * 查询用户标签
     *
     * @param request {@link TagCondition}
     * @return 返回多个标签信息 {@link TagDTO}
     */
    TMultiResult<TagDTO> query(TRequest<TagCondition> request);
}
